4 Точки внешней интеграции

Глава 4: Точки внешней интеграции

В данной главе описываются точки интеграции протокола CAP с внешними системами, определяются границы ответственности, направления взаимодействия и требования к протоколам связи для каждой точки интеграции. Протокол CAP не является изолированной системой — он должен взаимодействовать с iFay_Runtime, операционной системой терминала, аппаратными драйверами и Registration_Authority для совместного управления полномочиями терминала. Понимание границ интерфейсов и способов взаимодействия этих точек интеграции является предпосылкой для корректной реализации протокола CAP системными интеграторами.

4.1 Интеграция с iFay_Runtime

iFay_Runtime является средой выполнения Fay (iFay или coFay), отвечающей за управление жизненным циклом и планирование экземпляров Fay. С точки зрения протокола CAP, iFay_Runtime является инициатором запросов на управление — когда Fay необходим доступ к ресурсам терминала, iFay_Runtime от его имени направляет запрос на проверку авторизации к уровню протокола CAP.

Обязанности интеграции:

  • Инициирование запросов на управление: iFay_Runtime от имени Fay направляет запрос на проверку авторизации в Protocol_Engine, содержащий идентификатор Fay, целевой Terminal_Resource и учётные данные авторизации (Authorization_Descriptor или Trusted_Ticket)
  • Управление жизненным циклом Fay: iFay_Runtime отвечает за запуск, приостановку, возобновление и завершение экземпляров Fay. При завершении экземпляра Fay iFay_Runtime уведомляет Protocol_Engine об освобождении всех активных Session, удерживаемых данным Fay
  • Поддержание канала обнаружения активности: iFay_Runtime отвечает за поддержание постоянного соединения между Fay и терминалом и отправку heartbeat-сообщений на уровне приложения с настроенным интервалом, обеспечивая нормальную работу механизма Liveness_Detection
  • Получение уведомлений о состоянии сеансов: Protocol_Engine уведомляет iFay_Runtime об изменениях состояния Session (успешное создание, запрос на передачу, принудительное завершение), а iFay_Runtime передаёт эту информацию соответствующему экземпляру Fay

Направление взаимодействия: Двунаправленное (Bidirectional)

iFay_Runtime направляет запросы к уровню протокола CAP (проверка авторизации, освобождение сеанса, отправка heartbeat), а уровень протокола CAP возвращает ответы и отправляет push-уведомления iFay_Runtime (результаты проверки, изменения состояния сеансов, запросы на передачу).

Требования к протоколу связи:

  • Между iFay_Runtime и Protocol_Engine используется модель запрос-ответ на основе сообщений; формат сообщений соответствует определению Schema протокола CAP
  • Канал обнаружения активности требует поддержки постоянного соединения для реализации heartbeat на уровне приложения и push-уведомлений о состоянии в реальном времени
  • Канал связи должен поддерживать шифрование TLS, обеспечивая конфиденциальность и целостность учётных данных авторизации и информации о сеансах при передаче
  • Формат сериализации сообщений должен соответствовать файлу определения Schema (schema.json), обеспечивая межреализационную совместимость

4.2 Интеграция с операционной системой терминала

Операционная система терминала является управляющей стороной Terminal_Resource, отвечающей за унифицированное управление программными и аппаратными ресурсами терминала. Протокол CAP через интеграцию с операционной системой преобразует результаты проверки авторизации в фактический контроль доступа к ресурсам — операционная система на основании инструкций Protocol_Engine разрешает или запрещает доступ Fay к определённым ресурсам.

Обязанности интеграции:

  • Выполнение контроля доступа к ресурсам: Операционная система на основании инструкций контроля доступа, выданных Protocol_Engine, на системном уровне разрешает или блокирует доступ Fay к Terminal_Resource. Это включает контроль доступа к файловой системе, управление правами процессов, разрешения на доступ к устройствам и т.д.
  • Отчёт о состоянии ресурсов: Операционная система сообщает Protocol_Engine текущее состояние Terminal_Resource (доступен, занят, недоступен), позволяя Protocol_Engine принимать точные решения о распределении ресурсов
  • Изоляция среды выполнения: Операционная система обеспечивает изоляцию на уровне процессов или песочницы для операций различных Fay, гарантируя, что операции одного Fay не повлияют на доступ к ресурсам других Fay или пользователей-людей
  • Перенаправление событий ресурсов: При изменении состояния Terminal_Resource (например, отключение оборудования, сбой программного обеспечения) операционная система перенаправляет уведомление о событии в Protocol_Engine, инициируя соответствующий процесс завершения Session или освобождения ресурсов

Направление взаимодействия: Двунаправленное (Bidirectional)

Уровень протокола CAP направляет операционной системе инструкции контроля доступа и запросы состояния ресурсов, а операционная система сообщает уровню протокола CAP о состоянии ресурсов и перенаправляет события ресурсов.

Требования к протоколу связи:

  • Между уровнем протокола CAP и операционной системой используется механизм локального межпроцессного взаимодействия (IPC); конкретный способ зависит от платформы операционной системы (например, Unix Domain Socket, Named Pipe, D-Bus и т.д.)
  • Инструкции контроля доступа должны выполняться в режиме синхронного вызова, обеспечивая немедленное получение Protocol_Engine результата выполнения инструкции
  • Уведомления о событиях ресурсов используют асинхронный push-режим; операционная система активно уведомляет Protocol_Engine при изменении состояния ресурсов
  • Интерфейс связи должен соответствовать нативной модели безопасности операционной системы, обеспечивая, что только авторизованный процесс Protocol_Engine может выдавать инструкции контроля доступа

4.3 Интеграция с аппаратными драйверами

Аппаратные драйверы являются интерфейсом доступа к аппаратным Terminal_Resource (таким как камера, микрофон, GPS-модуль, устройства хранения и т.д.). Протокол CAP через интеграцию с аппаратными драйверами реализует детализированное управление полномочиями для аппаратных ресурсов. Аппаратные драйверы в системе интеграции протокола CAP находятся ниже операционной системы, обеспечивая низкоуровневый доступ к аппаратным ресурсам.

Обязанности интеграции:

  • Предоставление интерфейса доступа к аппаратным ресурсам: Аппаратные драйверы предоставляют уровню протокола CAP описание возможностей аппаратных ресурсов и операционный интерфейс, позволяя Protocol_Engine понимать поддерживаемые режимы доступа аппаратных ресурсов (read, write, execute, configure)
  • Выполнение контроля доступа на аппаратном уровне: Аппаратные драйверы на основании управляющих инструкций, переданных Protocol_Engine через операционную систему, выполняют разрешение или запрет доступа на аппаратном уровне. Например, разрешение или запрет Fay на включение камеры, доступ к микрофону
  • Отчёт о состоянии оборудования: Аппаратные драйверы сообщают вышестоящему уровню о состоянии подключения, рабочем состоянии и информации об ошибках аппаратных устройств; эта информация в конечном итоге передаётся в Protocol_Engine для принятия решений по управлению Session
  • Поддержка эксклюзивного управления аппаратными ресурсами: Для аппаратных ресурсов, требующих эксклюзивного доступа (например, вывод видеопотока камеры), аппаратные драйверы на низком уровне обеспечивают, что в один момент времени только одна сторона управления может монопольно использовать ресурс

Направление взаимодействия: Однонаправленное (Unidirectional) — Уровень протокола CAP → Аппаратные драйверы

Уровень протокола CAP через операционную систему направляет управляющие инструкции аппаратным драйверам; информация о состоянии аппаратных драйверов передаётся вверх через уровень управления устройствами операционной системы. Уровень протокола CAP не устанавливает прямой канал связи с аппаратными драйверами, а взаимодействует опосредованно через операционную систему. Путь отчёта о состоянии оборудования: аппаратный драйвер → операционная система → Protocol_Engine, что является частью точки интеграции с операционной системой (4.2).

Требования к протоколу связи:

  • Уровень протокола CAP не взаимодействует напрямую с аппаратными драйверами; всё взаимодействие осуществляется опосредованно через интерфейс управления устройствами операционной системы (например, DeviceIoControl, ioctl, sysfs и т.д.)
  • Описание возможностей аппаратных ресурсов должно соответствовать унифицированному формату описания ресурсов, позволяя Protocol_Engine единообразно управлять различными типами аппаратных ресурсов
  • Аппаратные драйверы должны поддерживать стандартный интерфейс контроля доступа к устройствам, предоставляемый операционной системой, обеспечивая применение инструкций контроля доступа протокола CAP на аппаратном уровне
  • Для высокочувствительных аппаратных ресурсов (таких как камера, микрофон) аппаратные драйверы должны поддерживать механизм блокировки доступа на аппаратном уровне, предотвращая обход контроля доступа на уровне операционной системы

4.4 Интеграция с Registration_Authority

Registration_Authority (Регистрационный орган) является ключевым компонентом инфраструктуры доверия протокола CAP, отвечающим за управление регистрацией аппаратного обеспечения, программного обеспечения и операционных систем терминалов, а также за распространение ключей проверки (Verification_Key) на терминалы. Verification_Key, получаемый терминалом от Registration_Authority, является якорем доверия для офлайн-проверки авторизации — без легитимного Verification_Key терминал не может проверить цифровую подпись Authorization_Descriptor.

Обязанности интеграции:

  • Регистрация терминала: Терминальное устройство (включая аппаратное обеспечение, операционную систему и клиентское программное обеспечение) проходит регистрацию через Registration_Authority, получая уникальный идентификатор терминала и начальную конфигурационную информацию
  • Распространение Verification_Key: Registration_Authority распространяет Verification_Key на зарегистрированные терминалы; терминал использует этот ключ для проверки цифровой подписи Authorization_Descriptor. Процесс распространения ключей должен осуществляться через безопасный канал для предотвращения подмены или перехвата ключей
  • Обновление и ротация ключей: Когда Verification_Key требует обновления (например, истечение срока действия ключа, смена издателя), Registration_Authority отвечает за отправку нового ключа на терминалы и координацию плавного перехода в процессе ротации ключей
  • Управление статусом регистрации: Registration_Authority поддерживает статус регистрации терминалов, включая регистрацию, приостановку и аннулирование. Статус регистрации терминала влияет на его возможность получать обновления Verification_Key и участвовать в процессе проверки авторизации протокола CAP

Направление взаимодействия: Однонаправленное (Unidirectional) — Registration_Authority → Терминал

Registration_Authority распространяет Verification_Key и регистрационную информацию на терминалы; терминалы являются пассивными получателями. Терминалы не направляют запросы на проверку авторизации и не сообщают о рабочем состоянии Registration_Authority — проверка авторизации терминала полностью выполняется локально (с использованием ранее распространённого Verification_Key), без необходимости поддержания связи с Registration_Authority в реальном времени. Запрос регистрации, направляемый терминалом в Registration_Authority, является одноразовым процессом инициализации и не относится к штатному взаимодействию во время работы протокола CAP.

Требования к протоколу связи:

  • Связь между Registration_Authority и терминалом должна осуществляться через безопасный канал (например, TLS/mTLS), обеспечивая конфиденциальность и целостность Verification_Key при передаче
  • Протокол распространения ключей должен поддерживать два режима: офлайн-предустановку и онлайн-обновление. Терминал при выпуске может содержать предустановленный начальный Verification_Key, а последующие обновления ключей получать через онлайн-канал
  • Сообщения об обновлении ключей должны содержать номер версии и время вступления в силу, поддерживая плавный переходный период между старым и новым ключами для предотвращения прерывания проверки авторизации при ротации ключей
  • Registration_Authority должен предоставлять механизм подтверждения распространения ключей, обеспечивая успешное получение и сохранение терминалом нового Verification_Key

4.5 Обзор направлений взаимодействия и протоколов связи точек интеграции

В следующей таблице обобщена информация о точках интеграции протокола CAP с 4 внешними системами, включая направления взаимодействия и требования к протоколам связи:

Точка интеграцииВнешняя системаНаправление взаимодействияТребования к протоколу связи
4.1iFay_RuntimeДвунаправленное (Bidirectional)Модель запрос-ответ на основе сообщений; поддержка постоянного соединения (обнаружение активности); шифрование TLS; формат сообщений соответствует определению Schema CAP
4.2Операционная система терминалаДвунаправленное (Bidirectional)Локальное межпроцессное взаимодействие (IPC); синхронный вызов + асинхронный push событий; соответствие нативной модели безопасности ОС
4.3Аппаратные драйверыОднонаправленное (CAP → Аппаратные драйверы)Опосредованная связь через интерфейс управления устройствами ОС; унифицированный формат описания ресурсов; поддержка блокировки доступа на аппаратном уровне
4.4Registration_AuthorityОднонаправленное (RA → Терминал)Безопасный канал TLS/mTLS; поддержка офлайн-предустановки и онлайн-обновления; управление версиями ключей и плавная ротация

Пояснение к направлениям взаимодействия:

  • Двунаправленное (Bidirectional): Между уровнем протокола CAP и внешней системой существует двунаправленное взаимодействие запрос-ответ или уведомление о событиях; обе стороны могут инициировать связь
  • Однонаправленное (Unidirectional): Информационный поток направлен только от одной стороны к другой. В п. 4.3 уровень протокола CAP через операционную систему направляет инструкции аппаратным драйверам (без прямой связи); в п. 4.4 Registration_Authority распространяет ключи и регистрационную информацию на терминалы (терминалы являются пассивными получателями)

Принципы проектирования протоколов связи:

  • Безопасность: Все каналы связи, связанные с передачей учётных данных авторизации и ключей, должны быть зашифрованы для предотвращения атак «человек посередине» и утечки информации
  • Адаптация к платформе: Интеграция с операционной системой и аппаратными драйверами использует нативные интерфейсы платформы, обеспечивая совместимость с различными операционными системами
  • Совместимость: Интеграция с iFay_Runtime и Registration_Authority использует стандартизированный формат сообщений (на основе Schema CAP), обеспечивая совместимость между различными реализациями
  • Отказоустойчивость: Протоколы связи должны поддерживать механизмы повторных попыток и деградации, обеспечивая нормальную работу основных функций протокола CAP (особенно офлайн-проверки авторизации) при прерывании связи